<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // var arr = [true, true, false, true];  

        //一、 every 循环 ，结果值如果 全部是true 那么最终结果是true ，只要有一个或者多个false结果值就是false；类似 且（&&）关系
        // 全选 /全不选

        // every 循环  只要确定了最终结果 ，那么循环就会停止了。
        // var res = arr.every(function (item, key, arr) {
        //     console.log(item, key, arr);
        //     return item;
        // })
        // console.log(res);


        // 实现一个every

        //     function myEvery(cb,arr){
        //         var flag = true;  // 假定最终的结果是true
        //         for(var i=0;i<arr.length;i++){
        //             flag = flag && cb(arr[i],i,arr);
        //             if(!flag){
        //                 break;
        //             }
        //         }
        //         return flag;
        //     }

        //    var res =  myEvery(function(item,key,arr){
        //         console.log(item,key,arr);
        //         return item;
        //     },arr)

        //     console.log(res);


        // 二、some循环： 所有结果是false 的时候 结果才是false  ，只要有一个true ，那么结果就是true。
        var arr = [false, false, false, false];
        // some 一旦获取了最终的结果 ，那么循环就停止了。
        // var res = arr.some(function (item, key, arr) {
        //     console.log(item, key, arr);
        //     return item;
        // })
        // console.log(res);


        // 实现一个 mysome 方法  

        function mySome(cb, arr) {
            var flag = false;  // 假定最终的结果是false
            for (var i = 0; i < arr.length; i++) {
                flag = flag || cb(arr[i], i, arr);
                if (flag) {  // 只要 flag 出现了true ，那么证明最终的结果就拿到了，那么就停止循环。
                    break;
                }
            }
            return flag;
        }

        var res = mySome(function (item, key, arr) {
            console.log(item, key, arr);
            return item;
        }, arr)
        console.log(res);
    </script>
</body>

</html>